package com.bt.controller.admin;

import com.bt.dto.YddCateDTO;
import com.bt.dto.YddCatePageListDTO;
import com.bt.entity.YddCate;
import com.bt.result.PageResult;
import com.bt.result.Result;
import com.bt.service.YddCateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Description 内容管理-分类管理
 * @Author 张传康
 * @Date 2023-05-02 0:39
 */
@Api(tags = "分类管理")
@Slf4j
@RestController
@RequestMapping("/ydd_cate")
public class YddCateController {
    @Autowired
    private YddCateService yddCateService;

    /**
     * 分页条件查询
     *
     * @param yddCatePageListDTO 前端传入的数据
     * @return
     */
    @ApiOperation("分页条件查询")
    @GetMapping("/list")
    public Result<PageResult> page(YddCatePageListDTO yddCatePageListDTO) {
        log.info("前端传来的数据：{}", yddCatePageListDTO);
        PageResult pageResult = yddCateService.pageQuery(yddCatePageListDTO);
        log.info("分类管理-分页条件查询返回数据：{}", pageResult);
        return Result.success(pageResult);
    }

    /**
     * 分类删除
     * @param id
     * @return
     */
    @ApiOperation("分类删除")
    @GetMapping("/del")
    public Result deleteById(Integer id){
        log.info("要删除的数据是：{}",id);
        yddCateService.deleteById(id);
        return Result.success();
    }

    /**
     * 分类添加
     * @param addYddCateDTO
     * @return
     */
    @ApiOperation("分类添加")
    @PostMapping("/add")
    public Result save(@RequestBody YddCateDTO addYddCateDTO){
        log.info("分类添加：{}",addYddCateDTO);
        yddCateService.save(addYddCateDTO);
        return Result.success();
    }

    /**
     * 分类详情
     * @return
     */
    @ApiOperation("分类详情")
    @GetMapping("/rowInfo")
    public Result<YddCate> queryRowInfo(Integer id){
        log.info("要回显的数据id是：{}",id);
        YddCate yddCate = yddCateService.queryRowInfo(id);
        return Result.success(yddCate);
    }

    /**
     * 分类修改
     * @param yddCateDTO
     * @return
     */
    @ApiOperation("分类修改")
    @PostMapping("/update")
    public Result update(@RequestBody YddCateDTO yddCateDTO){
        log.info("要修改的数据是：{}",yddCateDTO);
        yddCateService.update(yddCateDTO);
        return Result.success();
    }

    /**
     * 返回全部数据
     * @return
     */
    @ApiOperation("返回全部数据")
    @GetMapping("/all")
    public Result<List<YddCate>> all(){
        List<YddCate> yddCates = yddCateService.all();
        log.info("返回全部数据：{}",yddCates);
        return Result.success(yddCates);
    }
}
